﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using LapvComponent;
using log4net;
using LapvBussiness;

namespace Lapv.Account
{
    public partial class AccMN : System.Web.UI.Page
    {
        public string userLogin = "";
       
        int gmId = 0;
        public string domainStyle = ConfigLapv.Instance.DomainStyle;
        public string domain =ConfigLapv.Instance.DomainAdmin;
        private static readonly ILog log = LogManager.GetLogger(typeof(Lapv).Name);
        protected void Page_Load(object sender, EventArgs e)
        {
            string curUrl = Request.RawUrl.ToString();
            ProviderAdmin.CheckAuthen(curUrl, 9);
            if (Page.IsPostBack) return;
            
            BindDl();

        }
        
        void BindDl()
        {
            try
            {
                List<account> lst = null;
                using (lapvEntities db = new lapvEntities())
                {

                    lst = db.accounts.Include("role").ToList();
                    
                }
                dtgrid.DataSource = lst;
                dtgrid.DataBind();
            }
            catch (Exception ex)
            {

                log.Error(ex.Message, ex);
                ((Lapv)this.Master).MessageError = "Quá trình lấy dữ liệu bị lỗi. " + ex.Message;
            }
        }

        protected int DeleteGM(int _gmId)
        {
           
            return 0;
        }
        public string getip(string ip) { 
            if(ip.Contains("*")){
                return "Bất ki` IP nào";
            }
            return ip;
        }
        public void Update_ItemCommand(object sender, DataGridCommandEventArgs e)
        {
            try
            {
               // lblNoti.Text = "";
                if (e.CommandArgument.ToString().Trim() != "")
                    gmId = int.Parse(e.CommandArgument.ToString().Trim());
                switch (e.CommandName.ToString().Trim())
                {
                  
                    case "Delete":
                            string msg = "";
                            try
                            {
                                if (gmId > 0)
                                {
                                    using (lapvEntities db = new lapvEntities())
                                    {
                                        account obj = db.accounts.Where(ec => ec.id == gmId).FirstOrDefault();
                                        if (obj != null)
                                        {
                                            db.DeleteObject(obj);
                                            db.SaveChanges();
                                            msg = "Xóa thành công thành viên quản trị có mã " + gmId;
                                        }
                                        else
                                        {
                                            msg = "Xóa bị lỗi thành viên quản trị có mã " + gmId + ". Do không tồn tại đối tượng";
                                            ((Lapv)this.Master).MessageError = "Không tồn tại đối tượng cần xóa";
                                        }
                                    }

                                }
                                else { ((Lapv)this.Master).MessageError = "Mã tài khoản phải nguyên dương"; return; }
                            }
                            catch (Exception ex)
                            {
                                log.Error(ex.Message, ex);
                                msg = "Xóa bị lỗi thành viên quản trị có mã " + gmId + ". Do " + ex.Message;
                                ((Lapv)this.Master).MessageError = "Có lỗi xảy ra" + ex.Message;

                            }
                            try
                            {
                                int uid = 0;
                                string uname = string.Empty;
                                uid = ProviderAdmin.GetUsserId();
                                if (Session["UserName"] != null)
                                    uname = Session["UserName"].ToString();
                                ProviderAdmin.AddLog(uid, uname, msg, string.Empty, "USER_Lapv_DELETE");
                            }
                            catch (Exception ex)
                            {
                                log.Error(ex.Message, ex);
                            }
                            BindDl();
                            ((Lapv)this.Master).MessageInfomational = "Xóa dữ liệu thành công";
                        
                        break;
                        
                    case "EditIP":
                        Response.Redirect(domain + "Account/ChangeIp.aspx?UserId=" + gmId);
                        break;
                        
                    case "Edit":
                        Response.Redirect(domain + "Account/AccAdd.aspx?UserId=" + gmId.ToString());
                        break;



                }
            }
            catch { }
        }


        public void pager_Command(object sender, CommandEventArgs e)
        {
            int currnetPageIndx = Convert.ToInt32(e.CommandArgument);
            pager1.CurrentIndex = currnetPageIndx;

        }
        protected void ddlPaged_SelectedIndexChanged(object sender, EventArgs e)
        {
            pager1.PageSize = Convert.ToInt32(ddlPaged.SelectedValue);

        }
        void bindddlPaged()
        {
            ddlPaged.Items.Insert(0, new ListItem("10", "10"));
            ddlPaged.Items.Insert(1, new ListItem("15", "15"));
            ddlPaged.Items.Insert(2, new ListItem("20", "20"));
            ddlPaged.Items.Insert(3, new ListItem("30", "30"));
            ddlPaged.Items.Insert(4, new ListItem("50", "50"));
            pager1.PageSize = 50;
            ddlPaged.SelectedValue = "50";
        }
    }
}
